#include <iostream>
#include <cstring>

using namespace std;

const int N = 1e3 + 10, M = 1e4 + 10;

struct node{
	int a, b, c;
}e[M]; 

int n, m;
int dist[N];

bool bf(int s)
{
	memset(dist, 0x3f, sizeof dist);
	bool flag;
	dist[s] = 0;
	for(int i = 1; i <= n; i++)
	{
		flag = false;
		for(int j = 1; j <= m; j++)
		{
			int a = e[j].a, b = e[j].b, c = e[j].c;
			if(dist[a] + c < dist[b])
			{
				flag = true;
				dist[b] = dist[a] + c;	
			}	
		}	
		if(!flag) break;
	}	
	return flag;
}

int main()
{
	cin >> n >> m;
	for(int i = 1; i <= m; i++)
	{
		cin >> e[i].a >> e[i].b >> e[i].c;
		e[i].c = -e[i].c;
	}
	if(bf(1))
	{
		cout << "Forever love" << endl;
		return 0; 
	}
	int ret = dist[n];
	
	if(bf(n))
	{
		cout << "Forever love" << endl;
		return 0; 
	}
	cout << min(ret, dist[1]) << endl;
	return 0;
}
